/**
 * Created by xiaomin on 2015/6/9.
 */

var ngApp = angular.module('ngApp',[
    'ui.router',
    'userController',
    'MainController',
    'BaseService',
    'PrivilegeService',
    'defDirective'
]);

/**
 * 由于整个应用都会和路由打交道，所以这里把$state和$stateParams这两个对象放到$rootScope上，方便其它地方引用和注入。
 * 这里的run方法只会在angular启动的时候运行一次。
 * @param  {[type]} $rootScope
 * @param  {[type]} $state
 * @param  {[type]} $stateParams
 * @return {[type]}
 */
ngApp.run(function($rootScope, $state, $stateParams) {
    $rootScope.$state = $state;
    $rootScope.$stateParams = $stateParams;
    $rootScope.defaultPage = "admin";
});

/**
 * 配置路由。
 * 注意这里采用的是ui-router这个路由，而不是ng原生的路由。
 * ng原生的路由不能支持嵌套视图，所以这里必须使用ui-router。
 * @param  {[type]} $stateProvider
 * @param  {[type]} $urlRouterProvider
 * @return {[type]}
 */
// 所有路由对应的模板均在此定义。。。
ngApp.config(function($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise('/admin');  // 非法路由都会跳转到此路径
    //$stateProvider
    //    .state('admin/login',{
    //        url:'/admin/login',
    //        views:{
    //            '':{
    //                  templateUrl: 'login.html',
    //                controller:'LoginCtrl'
    //            }
    //        }
    //    });
    $stateProvider
        .state('login',{
            url:'/login',
            views:{
                '':{
                     templateUrl: 'login.html',
                    controller:'LoginCtrl'
                }
            }
        })
        .state('admin', {
            url: '/admin',
            views: {
                '': {
                    templateUrl: 'main.html'
                },
                'left@admin':{
                    templateUrl:'public/left.html',
                      controller: 'MainCtrl'
                },
                'right@admin':{
                    templateUrl:'privilege/user.html' ,
                     controller: 'UserCtrl'
                },
                'top@admin':{
                    templateUrl:'public/top.html',
                    controller: 'LoginCtrl'
                },
                'footer@admin':{
                    templateUrl:'public/footer.html'
                }
            }
        })
        .state('admin.role',{
            url:'/role',
            views: {
                'right@admin':{
                    templateUrl:'privilege/role.html',
                    controller:'RoleCtrl'
                }
            }

        })
         .state('admin.role.delete',{
            url:'/role/delete/:id',
            views: {
                'right@admin':{
                    templateUrl:'privilege/role.html',
                    controller:'RoleCtrl'
                }
            }

        })
         .state('admin.column',{
            url:'/column',
            views: {
                'right@admin':{
                    templateUrl:'article/column.html'
                }
            }

        })
         .state('admin.privilege',{
            url:'/privilege',
            views: {
                'right@admin':{
                    templateUrl:'privilege/privilege.html',
                    controller:'privilegeCtrl'
                }
            }

        })

});

